package com.剑指offer.第六章;

/**
 * 可以采用求直方图最大矩形面积的解法
 * <p>
 * 将矩阵转换成多个直方图之后，就可以计算并比较每个直方图的最大矩形面积
 * <p>
 * 1 0 1 0 0
 * 0 0 1 1 1
 * 1 1 1 1 1
 * 1 0 0 1 0
 * <p>
 * <p>
 * 第一行
 * 1 0 1 0 0
 * 第二行
 * 0 0 2 1 1
 * 第三行
 * 1 1 3 2 2
 * 第四行
 * 2 2 2 3 0
 *
 * 当某行某列时的值为0 就无法组成直方图 赋予 0
 */
public class 矩形中的最大矩形 {

    public static int resolve(char[][] nums) {
        // 创建一个几行的数组
        int[] ints = new int[nums[0].length];
        int max = 0;
        for (char[] num : nums) {
            for (int i = 0; i < num.length; i++) {
                if (num[i] == '0') {
                    ints[i] = 0;
                } else {
                    ints[i]++;
                }
            }
            max = Math.max(max, 直方图最大矩形面积.resolve1(ints));
        }
        return max;
    }

    public static void main(String[] args) {

    }

}
